//二维数组指针的关系
// 数组名 [A][B] 代表有 A个数组 其中每一个数组有 B个元素
//{}{}{}{}{}
// ^^^^^^^^^共 A个
//{*,*,*,*,*,*}
// ^^^^^^^^^^^ 共 B个元素
//数组名    等效 &数组名[0]     的地址 长度为 类型 *B
//数组名[0] 等效 &数组名[0][0]  的地址 长度为 类型

#include <stdio.h>

int main(void)
{
    int mar[3][4] = {
        {11, 12, 13, 14},
        {21, 22, 23, 24},
        {31, 32, 33, 34},
    };
    // int *P_1 = mar+1;    //报错，P_1不能接受数组 只能接受数组元素（可能把）
    int *P_2 = mar[1];      //不报错 P_2想到于是mar[0][0] 是具体的元素

    printf("%d  %p  %p\n", *mar[2], mar+1, P_2);


    printf("%p  %p  %p  %p\n", mar[0], mar[0]+1,mar[0]+2,mar[0]+3);

    printf("%p  %p\n", mar[0], &mar[1][0]);


    return 0;
}